package chapter08

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test05_Class
 * Package: chapter08
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-07-01
 *          Time: 11:09
 */

object Test05_Class {
  def main(args: Array[String]): Unit = {
    val student = Student1("alice", 18)
    //针对对象实例的内容进行匹配
    val ret = student match {
      //联想到之前的 Array和List 也是直接新创建的对象做匹配
      //但是他们用到的是伴生对象 所以 这里直接new是不行的
      //case new Student("alice",18) => "alice,18"
      //并且单纯的传一个apply对象是不行的 提示信息是说 没有实现当前伴生对象中的特殊方法unapply
      //如果单创建一个对象和另一个对象匹配的话 是比较对象的引用的
      //要判断的是内容 就要有一个方法告知 我判断的是对象的内容
      case Student1("alice", 18) => "alice,18"
      case _ => "Else"
    }
    println(ret)
  }
}
//模式匹配的话 样例类就很快捷

//定义一个样例类 对应的伴生对象 apply unapply 全部自动生成
case class Student1(name: String, age: Int)
